AnalyticDB PostgreSQL版采用计算节点本地存储的模式,支持行式存储和列式存储,支持非易失存储、固态硬盘、机械硬盘等多种存储介质,支持单节点最大10TB存储空间。在此基础之上,AnalyticDB PostgreSQL版进一步提供了存储压缩能力、OSS外表存储能力和共享存储格式、存储分层等能力,满足用户在不同场景的需求。
存储压缩
AnalyticDB PostgreSQL版列式存储形态支持存储空间压缩能力。用户在建表时,针对AO表和AOCO表可以选择是否对数据进行压缩。AnalyticDB PostgreSQL的压缩算法默认采用ZSTD压缩算法,同时支持LZ4,ZLIB压缩算法。
AnalyticDB PostgreSQL版的存储压缩具备如下特点:
- 存储空间。压缩表可以有效节约存储空间,如果采用ZSTD压缩算法,可节约大约75%存储空间,即1GB的原始数据仅仅需要250MB左右的物理存储空间。如采用LZ4压缩算法,可节约大约60%的存储空间,即1GB的原始数据仅仅需要400MB的物理存储空间。通过存储压缩可为用户节约75% ~ 60%的存储空间。
- 查询性能。存储压缩表的数据在查询时需要进行解压缩,同时由于所需存储空间较小、能够节约一定的IO带宽。因此在IO速度较慢时能够提高查询性能(如机械硬盘场景),反之则对查询性能有一定影响。LZ4算法的解压缩速度约为ZSTD解压缩速度的三倍,因此对查询性能要求高的场景,优先采用LZ4算法。
外表存储
除内部存储外,AnalyticDB PostgreSQL版支持通过外表方式访问OSS和Hadoop的存储数据。对象存储(OSS)是阿里云推出的存储服务,具备数据量大、成本低、安全性高、可靠性高的特点,能够满足多种场景的存储需求,存储成本低至0.12元/GB/月。
AnalyticDB PostgreSQL版支持通过外表方式对OSS存储服务进行访问,支持对OSS的数据进行分析操作,同时也支持将数据导出到OSS。目前支持的数据格式包括ORC、Parquet、CSV、JSON等,支持分区,同时支持部分过滤下推操作。此外,支持通过外表方式访问MaxCompute数据。
存储分层能力
很多分析场景的数据具有一定的时效性,时间越近的数据访问频率越高、越远的数据访问频率越低。AnalyticDB PostgreSQL版能够根据需求,自动地将部分时效性较低的数据进行归档、使用OSS等成本更低、访问速度较慢的存储介质替换高成本的本地存储。例如,用户可以指定超过三个月的数据自动归档至OSS,降低存储成本。通过分层存储,AnalyticDB PostgreSQL版能够在保证查询性能的同时,降低存储成本。
共享存储形态
数据库文件存储(DBFS)是阿里云的一款针对数据库场景的云原生共享文件存储服务,目前AnalyticDB PostgreSQL版已经和DBFS深度融合、提供了基于DBFS存储介质的产品形态。相对于基于本地存储的产品形态,基于DBFS的版本通过存储本身的高可用性和极致IO性能,实现了IO加速、多点读写、数据备份等能力,从而进一步降低存储成本、提升存储性能和可靠性。